import {
  getAddress,
  getChinaList,
  addAddress,
  updateAddress
} from '../../api/addressApi.js'
export default {
  namespaced: true,
  state: {
    //地址列表
    address_list: [],
    //添加地址是否显示
    vs: false,
    //省
    china_list: [],
    //市
    city_list: [],
    //区县
    district_list: [],
    // 收货人姓名
    uaddr_name: '',
    //手机号
    uaddr_phone: '',
    //省
    uaddr_province: '北京市',
    //市
    uaddr_city: '东城区',
    //区县
    uaddr_district: '',
    //详细地址
    uaddr_address: '',
    //默认地址(1)
    uaddr_isdefault: 0,
    // 默认
    default_address: {}
  },
  getters: {},
  mutations: {
    //存储地址
    set_address_list(state, val) {
      state.address_list = val;
    },
    //设置添加地址是否显示
    set_vs(state, val) {
      state.vs = val
    },
    //设置省
    set_china_list(state, val) {
      state.china_list = val;
    },
    //设置市
    set_city_list(state, val) {
      state.city_list = val;
    },
    // 设置区县
    set_district_list(state, val) {
      state.district_list = val;
    },
    // 保存默认地址
    set_default_address(state, val) {
      state.default_address = val;
    }
  },
  actions: {
    //获取地址
    get_address_list(context) {
      getAddress().then(function(response) {
        if (response.data.httpcode == 200) {
          //保存默认地址
          response.data.data.forEach(function(adrr) {
            if (adrr.uaddr_isdefault == 1) {
              context.commit('set_default_address', adrr);
            }
          })
          context.commit('set_address_list', response.data.data)
        }
      })
    },
    //获取省市区
    get_china_list(context) {
      getChinaList().then(function(response) {
        if (response.data.httpcode == 200) {
          //省
          context.commit('set_china_list', response.data.data);
          //市
          context.commit('set_city_list', response.data.data[0].children);
          //区县
          context.commit('set_district_list', response.data.data[0].children[0].children);
        }
      })
    },
    // 保存地址
    save_addr(context) {
      const addr = {
        // 收货人姓名
        uaddr_name: context.state.uaddr_name,
        //手机号
        uaddr_phone: context.state.uaddr_phone,
        //省
        uaddr_province: context.state.uaddr_province,
        //市
        uaddr_city: context.state.uaddr_city,
        //区县
        uaddr_district: context.state.uaddr_district,
        //详细地址
        uaddr_address: context.state.uaddr_address,
        //默认地址(1)
        uaddr_isdefault: 0
      }
      //发送请求
      addAddress(addr).then(function(response) {
        if (response.data.httpcode == 200) {
          //重写获取地址列表
          context.dispatch('get_address_list');
        }
      })
    },
    // 修改
    update_address(context, val) {
      updateAddress(val).then(function(response) {
        if (response.data.httpcode == 200) {
          //重写获取地址列表
          context.dispatch('get_address_list');
        }
      })
    }
  }
}
